/*
 * RuntimeErrorCass.h
 *
 *  Created on: 3 июн. 2022 г.
 *      Author: nikitas
 */

#ifndef SRC_TECHNICAL_RUNTIMEERRORCLASS_H_
#define SRC_TECHNICAL_RUNTIMEERRORCLASS_H_

#include "../STL_includes.h"

#include "../Typedefs.h"
#include "../Enums.h"

namespace STC_calc {

class RuntimeErrorClass
:public std::exception
{
private:
	std::string description;
	string_list prev_descriptions;
	Enums::Error_types type;
public:
	RuntimeErrorClass(std::string description, const Enums::Error_types type = Enums::fatal) noexcept;
	virtual ~RuntimeErrorClass() noexcept;

	const char* what() const noexcept override;
	void exception_exec();
};

} /* namespace STC_calc */

#endif /* SRC_TECHNICAL_RUNTIMEERRORCLASS_H_ */
